Access data from Open Microscopy database

Copyright 2023 The MathWorks Inc
Table of Contents

Introduction

Public Data: Many public databases have been created for the purposes of making data freely accessible to the scientific community. A best practice is to assign a unique identifier to a dataset, so that it is discoverable. A common form of a unique identifier is a Digital Object Identifier or DOI which points to the data.
Access Public Data: To access and process public data, you can use several routes.
Data formats: MATLAB supports a wide range of data formats
In this example, we will access microscopy data from the Image Data Resource (IDR) on the Open Microscopy database.

Access the data from Open Microscopy

Access a list of all publicly available projects

Clear the workspace
clearvars; clc
Construct some url addresses to query the data
baseUrl = "https://idr.openmicroscopy.org"; % main portal
projectsUrl = baseUrl + "/webgateway/proj/list/"; % list of projects
Read in all the projects available on the database into a table
projects = webread(projectsUrl);
projectTable = struct2table(projects)
projectTable = 114×3 table
 idnamedescription
1201'idr0032-yang-meristem/experimentA''Publication Title↵Regulation of Meristem Morphogenesis by Cell Wall Synthases in Arabidopsis.↵↵Experiment Description↵We performed systematic RNA in situ hybridization assays to examine the expression patterns of the SAM-expressed GTs at single-cell spatial resolution, including those transcripts that show either relative increases, reductions, or no change between SAM and flower samples.'
2101'idr0018-neff-histopathology/experimentA''Experiment Description↵Histopathology raw images and annotated tiff files of tissues from mice with 10 different single gene knockouts.'
3301'idr0026-weigelin-immunotherapy/experimentA''Publication Title↵Focusing and sustaining the antitumor CTL effector killer response by agonist anti-CD137 mAb.↵↵Experiment Description↵Combination therapy of adoptive CTL transfer and anti-CD137 monoclonal antibody. Mice were injected with B16F10/OVA melanoma cells and after 3 or 7 days were treated with OVA-specific CD8+ T cells (Cytotoxic T lymphocytes CTL) plus 1D8 antibody (anti-CD137).  4D timelapse images were taken at either 3 or 6 days after CTL + antibody treatment.↵↵Version History↵August 2017 - added additional phenotype to CMPO ontology mapping'
4401'idr0040-aymoz-singlecell/experimentA''Publication Title↵Timing of gene expression in a cell-fate decision system.↵↵Experiment Description↵Time-lapse with addition of 1uM alpha-factor at time 0'
552'idr0023-szymborska-nuclearpore/experimentA''Publication Title↵Nuclear pore scaffold structure analyzed by super-resolution microscopy and particle averaging.↵↵Experiment Description↵Systematic immunolabelling of the Nup107-160 complex and (monomeric) enhanced GFP [(m)EGFP] fusions of members of the Nup107-160 complex with an anti-GFP nanobody.'
651'idr0021-lawo-pericentriolarmaterial/experimentA''Publication Title↵Subdiffraction imaging of centrosomes reveals higher-order organizational features of pericentriolar material.↵↵Experiment Description↵Images relating to Figure 1e in Lawo et al 2012. These are the 3D-SIM reconstructed, maximum intensity projected and aligned images of centriole or PCM proteins of cycling HeLa cells in interphase.'
7754'idr0052-walther-condensinmap/experimentC''Publication Title↵A quantitative map of human Condensins provides new insights into mitotic chromosome architecture.↵↵Experiment Description↵Single Colour - Condensin subunits were immunostained (with an anti-GFP antibody), and mitotic cells with chromatids oriented in parallel to the focal plane were selected for imaging. DNA (Hoechst) and Condensins (mEGFP tag and anti-GFP immunostaining) were imaged by diffraction-limited microscopy, whereas immunostained Condensin was also imaged by STED microscopy.  Double Colour -  NCAPH2-mEGFP and NCAPH-Halo were immunostained respectively with anti-GFP (1:500; ab13970; Abcam) + goat secondary anti-chicken Alexa Fluor 594 (1;500; A-11042; Thermo Fisher Scientific) and anti-Halo (1:500; G9281; Promega) + anti-rabbit Abberior STAR RED then imaged by STED microscopy.'
8751'idr0052-walther-condensinmap''Publication Title↵A quantitative map of human Condensins provides new insights into mitotic chromosome architecture.↵↵Study Description↵Homozygous genome editing was used to fluorescently tag subunits of Condensin I and II in HeLa cells. Absolute abundance, spacing, and dynamic localization of the tagged proteins during mitosis was recorded by fluorescence correlation spectroscopy (FSC)-calibrated live-cell imaging and superresolution microscopy.'
9351'idr0038-held-kidneylightsheet/experimentA''Publication Title↵Ex vivo live cell tracking in kidney organoids using light sheet fluorescence microscopy.↵↵Experiment Description↵We have adapted the mouse kidney rudiment assay to generate renal organoids. To demonstrate that the organoid culture method of re-aggregated kidney rudiments in PDMS discs resulted in 3D kidney organoids with organotypic structures, we stained fixed six day old organoids for various developmental markers and imaged them with a light sheet fluorescent microscope. We have stained for the following markers: Megalin, Laminin, Cytokeratin, Pax2, Six2, Wt1, Synaptopodin and Nephrin and have also used the lectin stain PNA (peanut agglutinin). The spheroids were usually imaged as z stacks from five angles.'
10404'idr0041-cai-mitoticatlas/experimentA''Publication Title↵Experimental and computational framework for a dynamic protein atlas of human cell division.↵↵Experiment Description↵Image data used to build the mitotic cell atlas. This consists of three subsets: raw images, segmentation masks for the landmarks and protein concentration maps.'
11402'idr0042-nirschl-wsideeplearning/experimentA''Publication Title↵A deep-learning classifier identifies patients with clinical heart failure using whole-slide images of H&E tissue.↵↵Experiment Description↵Histopathology sub-image from patient whole-slide images from patients with end-stage clinical heart failure or cadaveric donor hearts from patients without heart failure.'
12352'idr0038-held-kidneylightsheet/experimentB''Publication Title↵Ex vivo live cell tracking in kidney organoids using light sheet fluorescence microscopy.↵↵Experiment Description↵All assays were performed on live cultures. The intact kidney rudiments were cultured at air liquid interface for 4 days following dissection. The organoids were cultured under medium immersion for six days following dissection. The samples cultured at air liquid interface were gently removed from the membranes before starting the assay. The samples were incubated for one hour at 25oC with PBS containing 1uM 5(6)-Carboxyfluorescein (6-CF) and 20 ug/ml of PNA (Vector Laboratories). For the control samples, 2 mM probenecid was also added to the solution to inhibit the organic anion transport. After incubation, the samples were washed with ice cold PBS for 10 mins followed by an incubation with 8mM probenecid in PBS for 15 mins to arrest any transport. The functional assay was concluded by two PBS washes and samples were then embedded in 1.5% agarose for imaging.'
131701'idr0106-kubota-lunglightsheet/experimentA''Publication Title↵Whole-organ analysis of TGF-beta-mediated remodelling of the tumour microenvironment by tissue clearing↵↵Experiment Description↵Whole lung image of metastatic model mouse.'
141902'idr0110-rodermund-xistrna/experimentA''Publication Title↵Time-resolved structured illumination microscopy reveals key principles of Xist RNA spreading↵↵Experiment Description↵In this project, XX mESCs with inducible endogenous Xist RNA, as well as XY mESCs with inducible autosomal transgenic Xist RNA, were used to study the localisation, dynamics and spreading behaviour of Xist RNA during the early phases of XCI. The Bgl-stem-loop labelling system was used in this project to label endogenous Xist RNA. A transgene encoding the BglG-Halo fusion protein was engineered to be doxycycline inducible. Later, different mutant cell lines were created using CRISPR/Cas9 genome editing. Considering the technical difficulties associated with live imaging of Xist foci, a different approach to studying Xist RNA dynamics was developed: RNA-SPLIT (Sequential Pulse Localisation Imaging over Time). In order to add temporal information one can make use of the fact that HaloTag technology enables addition of cell permeable ligands with different properties to cells, with excess ligand being washed out prior to fixation. Specifically, instead of a single HaloTag ligand, two different wavelength emitting HaloTag ligands were added sequentially after induction with doxycycline. Cells were induced for 1.5 h and 24 h before the start of the experiment to assess Xist localisation and dynamics in expansion and steady state respectively. Subsequent addition of the HaloTag ligands allowed for splitting the RNA into two differently labelled pools, pre-synthesised RNA labelled with Halo ligand 1 and newly synthesised RNA labelled with Halo ligand 2. This novel technique is especially powerful because variations of the set up can be used to study different aspects of RNA dynamics and localisation, and it can potentially be applied to any RNA and any stem-loop labelling system. Firstly, localisation of Xist to the X chromosome territory at the different stages of XCI and in different cellular backgrounds can be assessed by measuring the molecule density and volume of spread. Moreover, one can determine RNA turnover by scoring the number of pre-synthesised RNA molecules over time, while gradually increasing the staining time of newly synthesised RNA molecules for up to 4 h. Full turnover of the RNA can be assumed when no pre-synthesised RNA signal can be detected anymore. Turnover rates can be complemented by analysis of RNA transcription dynamics, quantified by scoring the number of newly synthesised RNA molecules while gradually increasing the staining time of newly synthesised RNA in 10 min intervals. Finally, RNA-SPLIT can be used to assess the localisation of newly synthesised RNA with respect to pre-synthesised RNA by measuring the distance of each newly synthesised molecule to the nearest pre-synthesised molecule. Image processing and analysis is critical for successful RNA-SPLIT experiments. After image acquisition with 3D-SIM, the data is reconstructed and undergoes quality checks through the SIMcheck plugin. Artefacts are reduced by generating modulation contrast maps and applying suitable and consistent filters to discard low modulation contrast signal. Then, background stemming from free diffusing BglG-Halo is discarded by manual thresholding. Channels are aligned using the open-source software package Chromagnon and EdU calibration data acquired on the date of image acquisition. In the final step of image processing, Xist territories are manually cropped. The volume of the cropped Xist territory gives first insights into the spreading volume of the RNA. To analyse the fully processed images, the signal is masked and the centroids of each molecule are determined by a Watershed algorithm. This allows for the counting of pre-synthesised and newly synthesised molecules at different time points and under various experimental conditions. RNA turnover and transcription dynamics can be deduced from this information. The localisation of each molecule in 3D determined by the Watershed algorithm can then be used to conduct NNA, where the distance of each newly synthesised molecule to its nearest neighbouring pre-synthesised molecule is measured. Variations of NNA, where distances between all RNA molecules or between the approximate transcription site and newly synthesised RNA are determined, can be used to examine RNA density and spreading behaviour. The development of this new tool for studying RNA localisation and dynamics allows for the addition of temporal resolution to super-resolved localisation microscopy data without the need for live cell imaging.'
Some rows have /experiment as a suffix to their names. These are projects containing actual data. Only display these and sort them by their IDs
projectTable = projectTable(contains(projectTable.name,"/experiment"),:);
sortrows(projectTable,"id")
ans = 99×3 table
 idnamedescription
151'idr0021-lawo-pericentriolarmaterial/experimentA''Publication Title↵Subdiffraction imaging of centrosomes reveals higher-order organizational features of pericentriolar material.↵↵Experiment Description↵Images relating to Figure 1e in Lawo et al 2012. These are the 3D-SIM reconstructed, maximum intensity projected and aligned images of centriole or PCM proteins of cycling HeLa cells in interphase.'
252'idr0023-szymborska-nuclearpore/experimentA''Publication Title↵Nuclear pore scaffold structure analyzed by super-resolution microscopy and particle averaging.↵↵Experiment Description↵Systematic immunolabelling of the Nup107-160 complex and (monomeric) enhanced GFP [(m)EGFP] fusions of members of the Nup107-160 complex with an anti-GFP nanobody.'
3101'idr0018-neff-histopathology/experimentA''Experiment Description↵Histopathology raw images and annotated tiff files of tissues from mice with 10 different single gene knockouts.'
4151'idr0027-dickerson-chromatin/experimentA''Publication Title↵High resolution imaging reveals heterogeneity in chromatin states between cells that is not inherited through cell division.↵↵Experiment Description↵To monitor the organisation of chromatin in live cells were engineered with fluorescent fusion proteins which recognize specific operator sequences to tag pairs of syntenic gene loci. The separation of these loci was then tracked in three dimensions over time using fluorescence microscopy. Data generated for this manuscript are made accessible here. This includes the movies generated from yeast strains with different genomic separations. These are available within subfolders titled "Colocalising", "Genomic separation 100kb", "Genomic separation 25kb" etc. Tracking data generated from these movies is also available as idr0027-AnalysisAllData.csv in the Attachments section below. This includes x, y and z co-ordinates of foci in the red and green channels following two stages of correction for channel alignment, the distance between the red and green foci in nanometers,  the offset of the red channel foci with respect to the green channel foci in x, y, and z. The maximum intensity, background intensity and standard deviation of the background intensity for both the red and green channels. The contrast (maximum spot intensity - nuclear background intensity) for each channel. The name originally assigned to the video, the genomic separation of the strain in kb. The string in column AE starts with the letter assigned to the video in supplementary figure 2. Some videos include two cells. In these cases the higher cell (on the y axis) is indicated as "upper" and the other as "lower". One of the two cells can often be assigned as the mother and the other as daughter. This is indicated as m or d in column AF. The systematic name of the strain is indicated in column AG.'
5201'idr0032-yang-meristem/experimentA''Publication Title↵Regulation of Meristem Morphogenesis by Cell Wall Synthases in Arabidopsis.↵↵Experiment Description↵We performed systematic RNA in situ hybridization assays to examine the expression patterns of the SAM-expressed GTs at single-cell spatial resolution, including those transcripts that show either relative increases, reductions, or no change between SAM and flower samples.'
6301'idr0026-weigelin-immunotherapy/experimentA''Publication Title↵Focusing and sustaining the antitumor CTL effector killer response by agonist anti-CD137 mAb.↵↵Experiment Description↵Combination therapy of adoptive CTL transfer and anti-CD137 monoclonal antibody. Mice were injected with B16F10/OVA melanoma cells and after 3 or 7 days were treated with OVA-specific CD8+ T cells (Cytotoxic T lymphocytes CTL) plus 1D8 antibody (anti-CD137).  4D timelapse images were taken at either 3 or 6 days after CTL + antibody treatment.↵↵Version History↵August 2017 - added additional phenotype to CMPO ontology mapping'
7351'idr0038-held-kidneylightsheet/experimentA''Publication Title↵Ex vivo live cell tracking in kidney organoids using light sheet fluorescence microscopy.↵↵Experiment Description↵We have adapted the mouse kidney rudiment assay to generate renal organoids. To demonstrate that the organoid culture method of re-aggregated kidney rudiments in PDMS discs resulted in 3D kidney organoids with organotypic structures, we stained fixed six day old organoids for various developmental markers and imaged them with a light sheet fluorescent microscope. We have stained for the following markers: Megalin, Laminin, Cytokeratin, Pax2, Six2, Wt1, Synaptopodin and Nephrin and have also used the lectin stain PNA (peanut agglutinin). The spheroids were usually imaged as z stacks from five angles.'
8352'idr0038-held-kidneylightsheet/experimentB''Publication Title↵Ex vivo live cell tracking in kidney organoids using light sheet fluorescence microscopy.↵↵Experiment Description↵All assays were performed on live cultures. The intact kidney rudiments were cultured at air liquid interface for 4 days following dissection. The organoids were cultured under medium immersion for six days following dissection. The samples cultured at air liquid interface were gently removed from the membranes before starting the assay. The samples were incubated for one hour at 25oC with PBS containing 1uM 5(6)-Carboxyfluorescein (6-CF) and 20 ug/ml of PNA (Vector Laboratories). For the control samples, 2 mM probenecid was also added to the solution to inhibit the organic anion transport. After incubation, the samples were washed with ice cold PBS for 10 mins followed by an incubation with 8mM probenecid in PBS for 15 mins to arrest any transport. The functional assay was concluded by two PBS washes and samples were then embedded in 1.5% agarose for imaging.'
9353'idr0038-held-kidneylightsheet/experimentC''Publication Title↵Ex vivo live cell tracking in kidney organoids using light sheet fluorescence microscopy.↵↵Experiment Description↵We have adapted the mouse kidney rudiment assay to generate renal organoids. 24 hours after pelleting 100,000 mouse kidney cells, organoids had formed in the PDMS dishes. For the PNA vital stain test we used kidney cells from wildtype mice and for the tracking time series we used cells from the Wt1tm1Nhsn strain, expressing GFP together with the transcription factor Wt1. One organoid was embedded in a hydrogel matrix (1.5% Agarose + 3% gelatine). In the microscope chamber, the hydrogel cylinder was extruded from the capillary so that the hydrogel column containing the organoid was located outside the capillary and immersed in medium (phenol red-free MEM + 10% FBS, 1% pen/strep, 3ug/ml PNA-rh) at 37oC and with 5% CO2. We recorded z stacks of the spheroids from multiple angles every 30 mins to record the location of the GFP expressing cells in three dimensions over time. There are three time series. These are available in the subfolders "Time PNA-rh vital", "Wt1-GFP PNA Time Series 1" and "Wt1-GFP PNA Time Series 2".  The time series data was processed in Fiji by opening the green channel only, binning in X and Y by a factor of two and converting it to 8 bit for processing in TrackMate (v.2.8.2) where we used the LoG (Laplacian of Gaussian) Detector and LAP (Linear Assignment Problem) Tracker options. Tracking data generated from the time series using the Track Mate plug in for Fiji is also provided in the time series data sets as "Nspots vs Time.txt", "Track statistics.txt", "Links in tracks statistics.txt" and "Spots in tracks statistics.txt". The data was analysed and plotted via the Matlab script provided as "TrackMateDataAnalysis.txt" in conjunction with the functions "NSpotsFunction.txt", "SpotsInTracksFunction.txt", "TrackStatisticsFunction.txt", "Violin.txt" and "violinplot.txt".'
10401'idr0040-aymoz-singlecell/experimentA''Publication Title↵Timing of gene expression in a cell-fate decision system.↵↵Experiment Description↵Time-lapse with addition of 1uM alpha-factor at time 0'
11402'idr0042-nirschl-wsideeplearning/experimentA''Publication Title↵A deep-learning classifier identifies patients with clinical heart failure using whole-slide images of H&E tissue.↵↵Experiment Description↵Histopathology sub-image from patient whole-slide images from patients with end-stage clinical heart failure or cadaveric donor hearts from patients without heart failure.'
12404'idr0041-cai-mitoticatlas/experimentA''Publication Title↵Experimental and computational framework for a dynamic protein atlas of human cell division.↵↵Experiment Description↵Image data used to build the mitotic cell atlas. This consists of three subsets: raw images, segmentation masks for the landmarks and protein concentration maps.'
13405'idr0045-reichmann-zygotespindle/experimentA''Publication Title↵Dual-spindle formation in zygotes keeps parental genomes apart in early mammalian embryos.↵↵Experiment Description↵Characterization of mitotic spindle formation in live mouse zygotes by light-sheet microscopy.'
14501'idr0043-uhlen-humanproteinatlas/experimentA''Publication Title↵Proteomics. Tissue-based map of the human proteome.↵↵Experiment Description↵Mapping of protein expression across all major tissues and organs in the human body'
Convert the text into the datatype string for easier indexing and manipulation
projectTable.name = string(projectTable.name);
projectTable.description = string(projectTable.description);

Access metadata on one single project

First, extract the descriptions of each project
descriptions = strings(height(projectTable),1);
for ii = 1:length(descriptions)
prjMetadata = splitlines(projectTable.description(ii));
descriptions(ii) = string(prjMetadata(2));
end
 
Let the user choose from a list of projects
thisProject = descriptions(87);
projectMatches = projectTable(descriptions==thisProject,:);
 
If multiple experiments correspond to one project, let the user choose the experiment
if height(projectMatches) > 1
ExptNames = projectMatches.name;
ExptNames = split(ExptNames,"/");
ExptNames = ExptNames(:,2);
selectedExpt = ExptNames(1);
projectMatches = projectMatches(contains(projectMatches.name,selectedExpt),:);
end
 
thisProject = projectMatches.id;
Query this particular project and list all the metadata associated with that project
projectInfoUrl = baseUrl + "/webgateway/proj/"+num2str(thisProject)+"/detail/";
projectInfo = webread(projectInfoUrl);
projectInfo.description = splitlines(projectInfo.description);
projectInfo.PublicationTitle = string(projectInfo.description(2));
projectInfo.description = string(projectInfo.description(5))
projectInfo = struct with fields:
type: 'Project' id: 2251 name: 'idr0123-mota-mifish/experimentA' description: "Datasets 1 and 2 are replicates of the same experimental design which consists of 16 probes targeting 16 consecutive loci on chromosome 2 using iFISH4U. The 16 probes targeting different loci are spaced with 3 or 20 Mb in order to study relatively small genomic distances and compare them with larger distances. Furthermore, 10 loci are made by a combination of two colours alternating within the locus and 6 loci have only one colour. Dataset 3 is a single colour experiment where one probe with alternated colours (AF488-AF594) was tested together with other two probes in different colours located in distinct genomic sites. There is 1 probe with AF488 dye, 1 probe with AT542, 1 probe with AF594 and 1 probe with AT647N. Dataset 4 is a single colour experiment where one probe with alternated colours (AT542-AT647N) was tested together with two other probes in different colours located in distinct genomic sites. There is 1 probe with AF488 dye, 1 probe with AT542, 1 probe with AF594 and 1 probe with AT647N. Dataset 5 consists of 23 probes targeting 23 consecutive loci on chromosome 1 using iFISH4U. The 23 loci are spaced with 10 Mb. There are 3 probes with AF488 dye, 4 probes with AT542, 4 probes with AF594, 4 probes with AT647N, 4 probes with AF700 and 4 probes with AF790. Datasets 6 and 7 are replicates of the same experimental design which consists of 21 probes targeting 21 consecutive loci on chromosome 2 using iFISH4U. The 23 loci are spaced with 10 Mb. There are 3 probes with AF488 dye, 3 probes with AT542, 3 probes with AF594, 3 probes with AT647N, 6 probes with AF700 and 3 probes with AF790. Datasets 8 and 9 are replicates of the same experimental design which consists of 13 probes targeting 13 consecutive loci on chromosome 10 using iFISH4U. The 23 loci are spaced with 10 Mb. There are 2 probes with AF488 dye, 2 probes with AT542, 3 probes with AF594, 2 probes with AT647N, 2 probes with AF700 and 2 probes with AF790." PublicationTitle: "Simultaneous visualization of DNA loci in single cells by combinatorial multi-color iFISH"
Often, projects (and datasets and images) can be accompanied by further annotations. Let's read the annotations attached to this project:
allAnnotations = webread(baseUrl + "/webclient/api/annotations/?project=" + num2str(projectInfo.id));
Take the first annotation ("MapAnnotationI") containing the metadata related to the project including the publication DOI and turn it into a dictionary using the MATLAB function dictionary
annotationValues = horzcat(allAnnotations.annotations{1}.values{:});
annotationValues = cellfun(@string, annotationValues);
annotationDictionary = dictionary(annotationValues(1,:),annotationValues(2,:))
annotationDictionary =
dictionary (stringstring) with 13 entries: "Sample Type" ⟼ "cell" "Organism" ⟼ "Homo sapiens" "Study Type" ⟼ "fluorescence in situ hybridization" "Imaging Method" ⟼ "epifluorescence microscopy" "Publication Title" ⟼ "Simultaneous visualization of DNA loci in single cells by combinatorial multi-color iFISH" "Publication Authors" ⟼ "Mota A, Schweitzer M, Wernersson E, Crosetto N, Bienko M" "PubMed ID" ⟼ "35145120 https://www.ncbi.nlm.nih.gov/pubmed/35145120" "Publication DOI" ⟼ "10.1038/s41597-022-01139-2 https://doi.org/10.1038/s41597-022-01139-2" "Release Date" ⟼ "2022-02-28" "License" ⟼ "CC BY 4.0 https://creativecommons.org/licenses/by/4.0/" "Copyright" ⟼ "Mota et al" "Data Publisher" ⟼ "University of Dundee" "Annotation File" ⟼ "idr0123-experimentA-annotation.csv https://github.com/IDR/idr0123-mota-mifish/blob/HEAD/experimentA/idr0123-experimentA-annotation.csv"
Next, we read in all the datasets related to this project
projectDatasetUrl = baseUrl + "/webgateway/proj/"+num2str(thisProject)+"/children/";
datasets = webread(projectDatasetUrl)
datasets = 9×1 struct
Fieldstypeidnamedescriptionchild_count
1'Dataset'16551'1_miFISH chr2 Replicate 1'''25
2'Dataset'16552'2_miFISH chr2 Replicate 2'''19
3'Dataset'16553'3_miFISH AF594-AF488 + AT542 + AT647N'''7
4'Dataset'16554'4_miFISH AT647N-AT542 + AF594 + AF488'''10
5'Dataset'16555'5_iFISH chr1 spotting Replicate 1'''50
6'Dataset'16556'6_iFISH chr2 spotting Replicate 1'''7
7'Dataset'16557'7_iFISH chr2 spotting Replicate 2'''50
8'Dataset'16558'8_iFISH chr10 spotting Replicate 1'''30
9'Dataset'16559'9_iFISH chr10 spotting Replicate 2'''10

Access single dataset from project

Access data from a single dataset selected from the above table
thisDatasetNames = string({datasets.name}');
datasetName = thisDatasetNames(8);
datasetID = datasets(thisDatasetNames==datasetName).id
datasetID = 16558

Access individual microscopy images from dataset

Accessing this dataset yields its metadata...
datasetInfo = webread(baseUrl + "/webgateway/dataset/"+string(datasetID)+"/detail/")
datasetInfo = struct with fields:
type: 'Dataset' id: 16558 name: '8_iFISH chr10 spotting Replicate 1' description: ''
...and all images associated with this dataset
datasetImages = webread(baseUrl + "/webgateway/dataset/"+string(datasetID)+"/children/");
datasetImages = struct2table(datasetImages,"AsArray",true)
datasetImages = 30×7 table
 typeidnamedescriptionauthordatethumb_url
1'Image'13966050'Dataset8.companion.ome [001]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966050/'
2'Image'13966051'Dataset8.companion.ome [002]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966051/'
3'Image'13966052'Dataset8.companion.ome [003]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966052/'
4'Image'13966053'Dataset8.companion.ome [004]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966053/'
5'Image'13966054'Dataset8.companion.ome [005]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966054/'
6'Image'13966055'Dataset8.companion.ome [006]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966055/'
7'Image'13966056'Dataset8.companion.ome [007]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966056/'
8'Image'13966057'Dataset8.companion.ome [008]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966057/'
9'Image'13966058'Dataset8.companion.ome [009]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966058/'
10'Image'13966059'Dataset8.companion.ome [010]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966059/'
11'Image'13966060'Dataset8.companion.ome [011]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966060/'
12'Image'13966061'Dataset8.companion.ome [012]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966061/'
13'Image'13966062'Dataset8.companion.ome [013]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966062/'
14'Image'13966063'Dataset8.companion.ome [014]''''Public data'1.6449e+09'/webgateway/render_thumbnail/13966063/'
There are two ways to access these images.
  1. Accessing the thumbnails - these are smaller in size and available by querying the url specified in the related thumb_url variable of the datasetImages table
  2. Accessing the full image by its ID
First, load all the image thumbnails for a visual inspection
datasetImages.thumb_url = string(datasetImages.thumb_url);
nImagesInDataset = height(datasetImages);
thumb = cell(1, nImagesInDataset); % preallocate memory for cell array
for thisImage = 1:nImagesInDataset
thumb{thisImage} = webread(baseUrl + datasetImages.thumb_url(thisImage));
end
figure
montage(thumb,"BorderSize",10,"BackgroundColor","white","ThumbnailSize",[128 128]);
Next, load a single full image from the selected dataset to look at it more closely. For this, you need the image number from the above montage
thisImage = 4;
thisImageUrl = baseUrl + "/webgateway/render_image/"+string(datasetImages.id(thisImage));
fullImage = webread(thisImageUrl);
figure
imshow(fullImage)

Simple Cell Counting (in the Image chosen above)

Use a very simple thresholding method to count cells in images.
First, convert the image to a grayscale image using the function im2gray
grayImage = im2gray(fullImage);
figure
imshow(grayImage)
Next, convert the grayscale image to a binary image using a user-specified threshold
thr = 90;
bwImage = grayImage > thr;
figure
imshow(bwImage)
Now start counting the cells. Use the command regionprops to define the cells (white areas) and bwboundaries to draw boundaries around each cell
cells = regionprops(bwImage,"all");
boundaries = bwboundaries(bwImage,"noholes");
A user-defined minimal pixel count specifies criteria for defining cells and boundaries based on their total volume to reject small debris from being counted
minPixelCount = 200;
boundaries = boundaries([cells.Area] > minPixelCount);
cells = cells([cells.Area] > minPixelCount);
centroids = vertcat(cells.Centroid);
Plot the boundaries and centroids on top of the original image. The boundaries can be smoothed using the smoothingFactor user control object
figure
imshow(fullImage);
smoothingFactor = 31;
hold on
for iBound = 1:numel(boundaries)
thisBound = boundaries{iBound};
plot(smooth(thisBound(:,2),smoothingFactor), smooth(thisBound(:,1),smoothingFactor), 'w', 'LineWidth', 0.5);
end
plot(centroids(:,1), centroids(:,2),"rx", "MarkerSize",12)
title("Image-ID: " + num2str(datasetImages.id(3)) + " / " + datasetImages.name(3), "Interpreter","none");

Publish reusable MATLAB code for reproducible results

To enable collaboration partners, reviewers and the community reuse your MATLAB code and reproduce your results.